home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1996 July: Mac OS SDK / Dev.CD Jul 96 SDK / Dev.CD Jul 96 SDK1.toast / Development Kits (Disc 1) / AOCE / Development Tools / Sample Code / Interprogram Messaging Manager / IPM MessageBoard / commands.c < prev    next >
Encoding:
C/C++ Source or Header  |  1993-08-23  |  3.4 KB  |  189 lines  |  [TEXT/MPS ]

  1. /*-------------------------------------------------------------------------------------
  2.  *
  3.  * IPM MessageBoard AOCE Sample
  4.  *
  5.  * ©1992-1993 Apple Computer
  6.  *
  7.  -------------------------------------------------------------------------------------*/
  8. /*
  9.  * commands.c -- called in response to menu commands or appleevents
  10.  *
  11.  * change history:
  12.  *
  13.  * SJF        2/12/93        1.0b1        udpate to AOCE beta seed
  14.  * SJF        11/6/91        1.0d1        initial coding
  15.  *
  16.  */
  17.  
  18. #ifndef __TYPES__
  19. #include <Types.h>
  20. #endif
  21.  
  22. #ifndef __DIALOGS__
  23. #include <Dialogs.h>
  24. #endif
  25.  
  26. #include "const.h"
  27. #include "mymenus.h"
  28. #include "globals.h"
  29. #include "utils.h"
  30. #include "statusdialog.h"
  31. #include "myipm.h"
  32.  
  33. #include "commands.h"
  34.  
  35.  
  36. /* show about box */
  37.  
  38. void CommAbout(void)
  39. {
  40.     DialogPtr theDlg;
  41.     short item;
  42.     
  43.     theDlg = GetNewDialog(kAboutBoxID,nil,kInFront);
  44.     do {
  45.         ModalDialog(nil,&item);
  46.     } while (item!=ok);
  47.     
  48.     DisposDialog(theDlg);
  49. }
  50.  
  51.  
  52. void CommMakeMessage(void)
  53. {
  54.     Str255 newMessage;
  55.     
  56.     if (gNumMessages==kMaxMessages) {
  57.         SysBeep(1);
  58.         return;
  59.     }
  60.     
  61.     newMessage[0] = '\0';
  62.     if (EditMessage(newMessage)) {
  63.         pstrcpy(gMessageList[gNumMessages],newMessage);
  64.         AddItemToList(gNumMessages,kMsgListDItem);
  65.         gNumMessages++;
  66.     }
  67. }
  68.  
  69.  
  70. Boolean GetQueueName(StringPtr msgText)
  71. {
  72.     DialogPtr theDlg;
  73.     short iType;
  74.     Handle iHndl;
  75.     Rect iRect;
  76.     short item;
  77.     
  78.     theDlg = GetNewDialog(kQNameEditBox,nil,kInFront);
  79.     GetDItem(theDlg,kQNameTextDItem,&iType,&iHndl,&iRect);
  80.     SetIText(iHndl,msgText);
  81.     SelIText(theDlg,kQNameTextDItem,0,32767);
  82.     
  83.     do {
  84.         ModalDialog(nil,&item);
  85.     } while (item!=ok && item!=cancel);
  86.     
  87.     if (item==ok)
  88.         GetIText(iHndl,msgText);
  89.         
  90.     DisposeDialog(theDlg);
  91.     
  92.     return (item==ok);
  93. }
  94.  
  95.  
  96. void CommMakeDestination(void)
  97. {
  98.     OSErr err;
  99.     Str32 qName;
  100.     
  101.     switch (gRadioBtnSelected)
  102.     {
  103.         case kAtalkAddrBtn:
  104.             err = GetIPMDestination(&gDestList[gNumDestinations]);
  105.             break;
  106.         case kCreateServerQBtn:
  107.             qName[0] = 0;
  108.             if (GetQueueName((StringPtr)&qName))
  109.                 err = MyCreateQueue((StringPtr)&qName,&gDestList[gNumDestinations]);
  110.             break;
  111.         case kOpenServerQBtn:
  112.             qName[0] = 0;
  113.             if (GetQueueName((StringPtr)&qName))
  114.                 err = OpenQueueOnRemoteMachine((StringPtr)&qName,&gDestList[gNumDestinations]);
  115.             break;
  116.         case kPrefMsgQBtn:
  117.             err = GetSingleAttrForRecipient(&gDestList[gNumDestinations],kPrefMsgQAttrTypeNum);
  118.             break;
  119.         case kMailSlotBtn:
  120.             err = GetSingleAttrForRecipient(&gDestList[gNumDestinations],kPrefMailAttrTypeNum);
  121.             break;
  122.  
  123.     }
  124.     
  125.     if (err==noErr) {
  126.         AddItemToList(gNumDestinations,kDestListDItem);
  127.         gNumDestinations++;
  128.     }
  129.     else if (err!=kUserCancelled)
  130.         DoError(err);
  131. }
  132.  
  133.  
  134. void CommViewMessage(short msgNum)
  135. {
  136.     Str255 newMessage;
  137.     
  138.     if (msgNum<0) {
  139.         SysBeep(1);
  140.         return;
  141.     }
  142.     
  143.     pstrcpy(newMessage,gMessageList[msgNum]);
  144.     if (EditMessage(newMessage)) {
  145.         pstrcpy(gMessageList[msgNum],newMessage);
  146.         EditItemInList(msgNum,kMsgListDItem);
  147.     }
  148. }
  149.  
  150.  
  151. void CommSendMessage(short msgNum,short destNum)
  152. {
  153.     OSErr err;
  154.     
  155.     if (msgNum<0 || destNum<0) {
  156.         SysBeep(1);
  157.         return;
  158.     }
  159.  
  160.     err = SendIPMMessage(gMessageList[msgNum],gDestList[destNum]);
  161.     if (err!=noErr)
  162.         DoError(err);
  163. }
  164.  
  165.  
  166. Boolean EditMessage(StringPtr msgText)
  167. {
  168.     DialogPtr theDlg;
  169.     short iType;
  170.     Handle iHndl;
  171.     Rect iRect;
  172.     short item;
  173.     
  174.     theDlg = GetNewDialog(kEditTextBoxID,nil,kInFront);
  175.     GetDItem(theDlg,kTextDItem,&iType,&iHndl,&iRect);
  176.     SetIText(iHndl,msgText);
  177.     SelIText(theDlg,kTextDItem,0,32767);
  178.     
  179.     do {
  180.         ModalDialog(nil,&item);
  181.     } while (item!=ok && item!=cancel);
  182.     
  183.     if (item==ok)
  184.         GetIText(iHndl,msgText);
  185.         
  186.     DisposeDialog(theDlg);
  187.     
  188.     return (item==ok);
  189. }